package xyz.kongbai121.common.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import xyz.kongbai121.common.redis.serializer.DictInitCacheRunner;
import org.springframework.context.ApplicationContext;

import java.util.List;


/**
 * 字典工具类
 * @author zbn
 */
public class DistUtil {
     
    private static ApplicationContext context;

    /**
     * 根据字典编码以及字典值转换成相对应的文字
     * @param dictType  字典编码
     * @param dictValue 字典值
     * @return  翻译后的文字
     */
    public static String transformStr(String dictType, int dictValue)  {
        DictInitCacheRunner bean = SpringContextUtils.getBean(DictInitCacheRunner.class);
        return bean.getDictNameByDictValue(dictType, String.valueOf(dictValue));
    }

    /**
     * 根据字典编码以及字典值转换成相对应的文字
     * @param dictType  字典编码
     * @param dictValueJson 字典值数组JSON
     * @return  翻译后的文字
     */
    public static String transformStrJson(String dictType, String dictValueJson)  {
        DictInitCacheRunner bean = SpringContextUtils.getBean(DictInitCacheRunner.class);
        List<String> list = JSON.parseObject(dictValueJson, new TypeReference<List<String>>() {});
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0; i < list.size(); i++) {
            String dictLabel = bean.getDictNameByDictValue(dictType, String.valueOf(list.get(i)));
            stringBuilder.append(dictLabel);
            // 如果当前不是最后一个
            if (i < list.size() - 1) {
                stringBuilder.append("、");
            }
        }
        return stringBuilder.toString();
    }
}